package api

type GetCurrencyToBalanceRes struct {
	Id        string `json:"id"`
	AccountId string `json:"account_id"`
	Currency  string `json:"currency"`
	Amount    string `json:"amount"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type GetCurrenciesRes struct {
	Currencies []*GetCurrenciesInfo `json:"currencies"`
}

type GetCurrenciesInfo struct {
	Code          string `json:"code"`
	DecimalPlaces int    `json:"decimal_places"`
	Name          string `json:"name"`
	OnlineTrading bool   `json:"online_trading"`
	CanBuy        bool   `json:"can_buy"`
	CanSell       bool   `json:"can_sell"`
	Image         string `json:"image"`
	CurrencyName  string `json:"currency_name"`
}

type TransactionsRecordReq struct {
	Status        string `json:"status"`
	Currency      string `json:"currency"`
	Page          int    `json:"page"`
	PageNum       int    `json:"page_num"`
	SettlesAtFrom string `json:"settles_at_from"`
	SettlesAtTo   string `json:"settles_at_to"`
}

type TransactionsRecordRes struct {
	Transactions []TransactionsRecordInfo `json:"transactions"`
	Pagination   Pagination               `json:"pagination"`
}

type TransactionsRecordInfo struct {
	Id                          string  `json:"id"`
	BalanceId                   string  `json:"balance_id"`
	AccountId                   string  `json:"account_id"`
	Currency                    string  `json:"currency"`
	Amount                      string  `json:"amount"`
	BalanceAmount               *string `json:"balance_amount"`
	Type                        string  `json:"type"`
	RelatedEntityType           string  `json:"related_entity_type"`
	RelatedEntityId             string  `json:"related_entity_id"`
	RelatedEntityShortReference string  `json:"related_entity_short_reference"`
	Status                      string  `json:"status"`
	Reason                      string  `json:"reason"`
	SettlesAt                   string  `json:"settles_at"`
	CreatedAt                   string  `json:"created_at"`
	UpdatedAt                   string  `json:"updated_at"`
	CompletedAt                 string  `json:"completed_at"`
	Action                      string  `json:"action"`
}

type Pagination struct {
	TotalEntries int    `json:"total_entries"`
	TotalPages   int    `json:"total_pages"`
	CurrentPage  int    `json:"current_page"`
	PerPage      int    `json:"per_page"`
	PreviousPage int    `json:"previous_page"`
	NextPage     int    `json:"next_page"`
	Order        string `json:"order"`
	OrderAscDesc string `json:"order_asc_desc"`
}

type FindBalanceRes struct {
	Balances []Balances `json:"balances"`
}

type Balances struct {
	Id        string `json:"id"`
	AccountId string `json:"account_id"`
	Currency  string `json:"currency"`
	Amount    string `json:"amount"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type TopUpMarginReq struct {
	Currency   string `json:"currency"`
	Amount     string `json:"amount"`
	OnBehalfOf string `json:"on_behalf_of"`
}

type TopUpMarginRes struct {
	AccountId         string `json:"account_id"`
	Currency          string `json:"currency"`
	TransferredAmount string `json:"transferred_amount"`
}
